#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>

/*
输入：	./read 1.txt
解析： argc = 2
	   argv[0] = "./read"
	   argv[1] = "1.txt"

*/
int main(int argc,char **argv)
{
	int fd;
	if(argc != 2)
	{
		printf("usage:%s <filename>...\n",argv[0]);
		return -1;
	}
	//打开文件
	fd = open(argv[1], O_RDONLY); //只读
	if(fd<0){
		printf("can not open file %s\n",argv[1]);//打印报错
		printf("errno = %d\n",errno);	//出错的数量
		printf("err:%s\n",strerror(errno));//打印错误
		//perror("open");//打印错误	
	}
	else
	{
		printf("fd = %d\n",fd);
	}

	//读文件 and 打印
	int len;
	unsigned char buf[100];
	while(1)
	{
		len = read(fd,buf,sizeof(buf)-1);	//读取的数据长度
		if(len<0) 
		{
			perror("read");//打印错误	
			close(fd);
			return -1;
		}
		else if(len ==0)//读到文件尾部
		{
			break;
		}
		else
		{
			buf[len] = '\0';//结束符
			printf("%s",buf);
		}
	}
	
	close(fd);
	return 0;	
}


